
#include "lagrangian.h"
#include "dimacsFile.h"
#include "vertexOrders.h"
#include "bitMapGraph.h"
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <sys/time.h>
#include <math.h>

int n;
int m;
int k;

clock_t start;
clock_t end;

int main(int argc, char** argv){
	if(argc < 3){
		printf("Numero de argumentos inválido \n");
		return 1;
	}
	FILE* graphFile = fopen(argv[2], "r");
	k = atoi(argv[1]);
	readFile(graphFile, complement, &n, &m);
	int* c = malloc(sizeof(int)*n);
	mcrStableSort(n, c);
	printf("Grafo: %s com %d vertices e %d aresta \n", argv[2], n, m);
	printf("Fazendo uma %upla-coloração \n", k);
	start = clock();
	double sol;
	define();
	double lim = lagrangian(&sol);
	int limInt = ceil(lim);
	int solInt = floor(sol);
	end = clock();
	printf("Relaxação Lagrangeana terminada com sucesso!\n");
	printf("Valor encontrado: %d \n", limInt);
	printf("Melhor solução encontrada: %d \n", solInt);
	printf("Tempo usado: %f \n", (end-start/(double)CLOCKS_PER_SEC)/ 1000000.0);
	fclose(graphFile);
	return 0;
}

